/**
 * 系统字典实体定义
 * @description 定义系统字典的数据结构和属性
 */
export interface SysDict {
  id: number;
  dict_name: string;
  dict_key: string;
  dict_type: number;
  status: number;
  remark: string;
  is_sys: number;
  time: number;
  update_time: number;
  disabled: number;
  [key: string]: unknown;
}

/**
 * 系统字典数据实体定义
 * @description 定义系统字典数据项的数据结构和属性
 */
export interface SysDictData {
  id: number;
  name: string;
  value: string;
  dict_key: string;
  style: string;
  order: number;
  status: number;
  ext: string;
  remark: string;
  is_sys: number;
  time: number;
  update_time: number;
  disabled: number;
  [key: string]: unknown;
}

/**
 * 创建系统字典DTO
 * @description 用于创建字典的数据传输对象
 */
export interface CreateSysDictDto {
  dict_name: string;
  dict_key: string;
  dict_type: number;
  status?: number;
  remark?: string;
  is_sys?: number;
  [key: string]: unknown;
}

/**
 * 创建系统字典数据DTO
 * @description 用于创建字典数据项的数据传输对象
 */
export interface CreateSysDictDataDto {
  name: string;
  value: string;
  dict_key: string;
  style?: string;
  order?: number;
  status?: number;
  ext?: string;
  remark?: string;
  is_sys?: number;
  [key: string]: unknown;
}

/**
 * 更新系统字典DTO
 * @description 用于更新字典的数据传输对象
 */
export interface UpdateSysDictDto {
  id: number;
  dict_name?: string;
  dict_key?: string;
  dict_type?: number;
  status?: number;
  remark?: string;
  is_sys?: number;
  [key: string]: unknown;
}

/**
 * 更新系统字典数据DTO
 * @description 用于更新字典数据项的数据传输对象
 */
export interface UpdateSysDictDataDto {
  id: number;
  name?: string;
  value?: string;
  dict_key?: string;
  style?: string;
  order?: number;
  status?: number;
  ext?: string;
  remark?: string;
  is_sys?: number;
  [key: string]: unknown;
}

/**
 * 系统字典查询DTO
 * @description 用于查询字典的条件参数
 */
export interface SysDictQueryDto {
  dict_name?: string;
  dict_key?: string;
  dict_type?: number;
  status?: number;
  is_sys?: number;
  disabled?: number;
  [key: string]: unknown;
}

/**
 * 系统字典数据查询DTO
 * @description 用于查询字典数据项的条件参数
 */
export interface SysDictDataQueryDto {
  name?: string;
  value?: string;
  dict_key?: string;
  status?: number;
  is_sys?: number;
  disabled?: number;
  [key: string]: unknown;
}

/**
 * 批量删除DTO
 * @description 用于批量删除字典或字典数据项的ID数组
 */
export interface BatchDeleteDto {
  ids: number[];
  [key: string]: unknown;
}

/**
 * 字典统计DTO
 * @description 字典相关的统计数据
 */
export interface DictStatisticsDto {
  total_dicts: number;
  total_dict_data: number;
  sys_dicts: number;
  custom_dicts: number;
  [key: string]: unknown;
}
